Image processing apparatus, method of controlling the same and storage medium

ABSTRACT

An image processing apparatus which is capable of executing a processing flow without changing the contents thereof even when the processing flow includes a process that cannot be executed by itself. When a processing flow includes an unexecutable process, the apparatus transmits a request for confirming whether or not the processing flow is executable, to other image processing apparatuses, and receives a response indicating that the processing flow is executable, from any of the other apparatuses. The apparatus determines a transfer destination of the processing flow from the other image processing apparatuses. The apparatus generate from the processing flow a first cooperation processing flow including executable processes and a second cooperation processing flow including at least one unexecutable process, and transfers the second cooperation processing flow to the determined transfer destination. The apparatus displays an execution button for executing the first cooperation processing flow.

This is a continuation of and claims benefit to U.S. patent applicationSer. No. 12/611,472, filed Nov. 3, 2009, pending. These applicationsclaim priority to JP Application No. 2008-283307, filed Nov. 4, 2008.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an image processing apparatus that iscapable of registering a plurality of tasks as a series of processingflows and execute the same, a method of controlling the image processingapparatus, and a storage medium.

2. Description of the Related Art

There is provided an application which combines a plurality of tasks ondocuments in an image processing apparatus and registers the combinedtasks as a series of processes such that by calling the series ofprocesses, a user can execute a plurality of processes for his frequentuse, without performing troublesome operations. The term “task” isintended to mean a process that can be realized by an individualfunction e.g. of a multifunction image processing apparatus or a processthat can be realized by an application executed by an informationprocessing apparatus or the like. For example, input and output tasks ofthe image processing apparatus include scanning of originals, printingof documents, transmissions (e-mail transmission, facsimiletransmission, file transmission, and so forth) and storage in disks(storage in hard disks inside and outside the apparatus). Examples ofedit tasks include combination of a plurality of documents, deletion ofpages on documents.

A combination of a series of tasks generated for the purpose ofconnecting a plurality of tasks to process the same in a time-seriesmanner is called a processing flow. This combination can be generated byvarious combination processes including execution of a task using theresult of another task as an input thereto. In the image processingapparatus incorporating the application handling the above-describedprocessing flows, the user depresses a button (button having aprocessing flow assigned thereto), whereby a processing flow associatedwith the button is executed.

Some of the image processing apparatuses configured as above have thefunction of transmitting a processing flow generated thereby to anotherimage processing apparatus. In the image processing apparatus thatreceives the processing flow, a button having the processing flowassigned thereto is displayed on a UI (User Interface), and when thebutton is depressed by a user, the processing flow is executed. Further,it is also possible to transmit the processing flow to still anotherimage processing apparatus from the image processing apparatus havingreceived the processing flow. Thus, even when one image processingapparatus is replaced by another, there is no need to generate the sameprocessing flow that has been conventionally used, on the new imageprocessing apparatus after replacement, again.

In the above-described image processing apparatuses, however, tasks thatcan be analyzed and executed and settings of tasks are sometimesdifferent depending on the type and option configuration of anapparatus, or the version of an application for handling processingflows. Therefore, when a transmitted processing flow includes a taskwhich is not supported by a receiving-side image processing apparatus,the unsupported portion of processing flow cannot be analyzed. Let it beassumed, for example, that a processing flow is generated which includestasks of “transmitting scanned data after giving a user certificatethereto”. In this case, an image processing apparatus which does notsupport the function of giving a user certificate is incapable ofanalyzing the portion of “giving a user certificate”. As a consequence,even if the apparatus attempts to execute the processing flow, it cannotcarry out the portion of “giving a user certificate” only to executeprocessing for “transmitting scanned data” or result in a processingerror.

As a solution to such an unexecutable image processing request asdescribed above, there has been proposed a method in Japanese PatentLaid-Open Publication No. 2002-190889. In Japanese Patent Laid-OpenPublication No. 2002-190889, when an image processing apparatusdetermines that it cannot execute a predetermined image processingrequest set thereto, the apparatus transfers converted image data to animage processing apparatus which is determined to be capable of using aselected and set predetermined image processing function effectively, tothereby cause the image processing apparatus to execute the request inplace of itself.

However, in the method proposed in Japanese Patent Laid-Open PublicationNo. 2002-190889, only image data is exchanged between the imageprocessing apparatuses, and when the same image processing request isdesired to be executed by one image processing apparatus that executesthe request in place of the other, it is required to set the imageprocessing request again. It is desired that while maintaining the meritof “dispensing with troublesome operations by the user”, which theabove-mentioned application for handling processing flows has, it isfurther possible to make unexecutable processing flows executable asdesired by the user without changing the contents, i.e. tasks thereof.

Furthermore, when one image processing apparatus incapable of executinga processing flow causes another image processing apparatus to executethe processing flow in place thereof, if the processing flow includesfinally discharging printed sheets, there are the following concernsinvolving the problem of security: The other image processing apparatuswhich is to discharge the printed sheets is physically away from the oneimage processing apparatus used by the user for instructing to start theexecution of the processing flow, and hence it is not easy for the userto know which image processing apparatus is to discharge the printedsheets onto a discharge tray thereof. Similarly, there is also envisageda problem that since the printed sheets are to be discharged from theother image processing apparatus physically away from the one imageprocessing apparatus used by the user for instructing to start theexecution of the processing flow, the user is liable to leave or forgetto take out the printed sheets.

SUMMARY OF THE INVENTION

The present invention provides an image processing apparatus which iscapable of executing a processing flow without changing the contentsthereof even when the processing flow includes a task that cannot beexecuted by the image processing apparatus, a method of controlling theimage processing apparatus, and a storage medium storing a program forcausing a computer to execute the method.

In a first aspect of the present invention, there is provided an imageprocessing apparatus including a registration unit that registers aprocessing flow set by combining a plurality of processes, and anexecution unit that executes the plurality of processes based on theregistered processing flow, comprising a transmission unit configured tobe operable when the registered processing flow includes a process thatcannot be executed by the image processing apparatus, to transmit, toeach of other image processing apparatuses, a request for confirmingwhether or not the processing flow can be executed thereby, a receptionunit configured to receive a response to the request transmitted by thetransmission unit, the response indicating that the processing flow canbe executed, from any of the other image processing apparatuses, adecision unit configured to decide a transfer destination of theprocessing flow, out of the any of the other image processingapparatuses that have transmitted the response, a generation unitconfigured to generate from the processing flow a first cooperationprocessing flow including processes that can be executed by the imageprocessing apparatus, and a second cooperation processing flow includingat least one process that cannot be executed by the image processingapparatus, a transfer unit configured to transfer the second cooperationprocessing flow to the transfer destination decided by the decisionunit, and a display unit configured to display an execution button forexecuting the first cooperation processing flow.

In a second aspect of the present invention, there is provided an imageprocessing apparatus including a registration unit that registers aprocessing flow set by combining a plurality of processes, and anexecution unit that executes the plurality of processes based on theregistered processing flow, comprising a first transmission unitconfigured to be operable when the registered processing flow includesat least one process that cannot be executed by the image processingapparatus, to transmit, to each of other image processing apparatuses, arequest for confirming whether or not the processing flow can beexecuted thereby, a first reception unit configured to receive aresponse to the request transmitted by the first transmission unit, theresponse indicating that the processing flow can be executed, from anyof the other image processing apparatuses, a decision unit configured todecide a transfer destination of the processing flow, out of the any ofthe other image processing apparatuses that have transmitted theresponse, a generation unit configured to generate from the processingflow a first cooperation processing flow including processes that can beexecuted by the image processing apparatus, and a second cooperationprocessing flow including at least one process that cannot be executedby the image processing apparatus, a transfer unit configured totransfer the second cooperation processing flow to the transferdestination decided by the decision unit, a first display unitconfigured to display an execution button for executing the firstcooperation processing flow, a second transmission unit configured to beoperable when a user depresses the execution button for executing thefirst cooperation processing flow, to transmit an instruction forexecuting the second cooperation processing flow to the transferdestination, after the execution unit executes the first cooperationprocessing flow, a second reception unit configured to receive a requestfor confirming whether or not the processing flow can be executed, afirst determination unit configured to determine whether or not theprocessing flow can be executed by the image processing apparatus, athird transmission unit configured to be operable when the firstdetermination unit determines that the processing flow can be executed,to transmit the response indicating that the processing flow can beexecuted, to a transmission source of the request received by the secondreception unit, a third reception unit configured to receive the secondcooperation processing flow from the transmission source of the request,a fourth reception unit configured to receive the instruction forexecuting the second cooperation processing flow, a second determinationunit configured to determine whether or not an execution button forexecuting the second cooperation processing flow is to be displayed, asecond display unit configured to be operable when the seconddetermination unit determines that the execution button is to bedisplayed, to display the execution button for executing the secondcooperation processing flow, and a processing unit configured to executethe second cooperation processing flow when the second determinationunit determines that the execution button is not to be displayed.

In a third aspect of the present invention, there is provided a methodof controlling an image processing apparatus including a registrationunit that registers a processing flow set by combining a plurality ofprocesses, and an execution unit that executes the plurality ofprocesses based on the registered processing flow, comprisingtransmitting, when the registered processing flow includes a processthat cannot be executed by the image processing apparatus, to each ofother image processing apparatuses, a request for confirming whether ornot the processing flow can be executed thereby, receiving a response tothe transmitted request, the response indicating that the processingflow can be executed, from any of the other image processingapparatuses, deciding a transfer destination of the processing flow, outof the any of the other image processing apparatuses that havetransmitted the response, generating from the processing flow a firstcooperation processing flow including processes that can be executed bythe image processing apparatus, and a second cooperation processing flowincluding at least one process that cannot be executed by the imageprocessing apparatus, transferring the second cooperation processingflow to the decided transfer destination, and displaying an executionbutton for executing the first cooperation processing flow.

In a fourth aspect of the present invention, there is provided a methodof controlling an image processing apparatus including a registrationunit that registers a processing flow set by combining a plurality ofprocesses, and an execution unit that executes the plurality ofprocesses based on the registered processing flow, comprisingtransmitting, when the registered processing flow includes at least oneprocess that cannot be executed by the image processing apparatus, toeach of other image processing apparatuses, a request for confirmingwhether or not the processing flow can be executed thereby, receiving aresponse to the transmitted request, the response indicating that theprocessing flow can be executed, from any of the other image processingapparatuses, deciding a transfer destination of the processing flow, outof the any of the other image processing apparatuses that havetransmitted the response, generating from the processing flow a firstcooperation processing flow including processes that can be executed bythe image processing apparatus, and a second cooperation processing flowincluding at least one process that cannot be executed by the imageprocessing apparatus, transferring the second cooperation processingflow to the decided transfer destination, displaying an execution buttonfor executing the first cooperation processing flow, transmitting, whena user depresses the execution button for executing the firstcooperation processing flow, an instruction for executing the secondcooperation processing flow to the transfer destination, after theexecution unit executes the first cooperation processing flow, receivinga request for confirming whether or not the processing flow can beexecuted, determining whether or not the processing flow can be executedby the image processing apparatus, transmitting, when it is determinedthat the processing flow can be executed, the response indicating thatthe processing flow can be executed, to a transmission source of thereceived request, receiving the second cooperation processing flow fromthe transmission source of the request, receiving the instruction forexecuting the second cooperation processing flow, determining whether ornot an execution button for executing the second cooperation processingflow is to be displayed, displaying, when it is determined that theexecution button is to be displayed, the execution button for executingthe second cooperation processing flow, and executing the secondcooperation processing flow when it is determined that the executionbutton is not to be displayed.

In a fifth aspect of the present invention, there is provided a storagemedium storing a program for causing a computer to execute a method ofcontrolling an image processing apparatus including a registration unitthat registers a processing flow set by combining a plurality ofprocesses, and an execution unit that executes the plurality ofprocesses based on the registered processing flow, wherein the methodcomprises transmitting, when the registered processing flow includes aprocess that cannot be executed by the image processing apparatus, toeach of other image processing apparatuses, a request for confirmingwhether or not the processing flow can be executed thereby, receiving aresponse to the transmitted request, the response indicating that theprocessing flow can be executed, from any of the other image processingapparatuses, deciding a transfer destination of the processing flow, outof the any of the other image processing apparatuses that havetransmitted the response, generating from the processing flow a firstcooperation processing flow including processes that can be executed bythe image processing apparatus, and a second cooperation processing flowincluding at least one process that cannot be executed by the imageprocessing apparatus, transferring the second cooperation processingflow to the decided transfer destination, and displaying an executionbutton for executing the first cooperation processing flow.

In a sixth aspect of the present invention, there is provided a storagemedium storing a program for causing a computer to execute a method ofcontrolling an image processing apparatus including a registration unitthat registers a processing flow set by combining a plurality ofprocesses, and an execution unit that executes the plurality ofprocesses based on the registered processing flow, wherein the methodcomprises transmitting, when the registered processing flow includes atleast one process that cannot be executed by the image processingapparatus, to each of other image processing apparatuses, a request forconfirming whether or not the processing flow can be executed thereby,receiving a response to the transmitted request, the response indicatingthat the processing flow can be executed, from any of the other imageprocessing apparatuses, deciding a transfer destination of theprocessing flow, out of the any of the other image processingapparatuses that have transmitted the response, generating from theprocessing flow a first cooperation processing flow including processesthat can be executed by the image processing apparatus, and a secondcooperation processing flow including at least one process that cannotbe executed by the image processing apparatus, transferring the secondcooperation processing flow to the decided transfer destination,displaying an execution button for executing the first cooperationprocessing flow, transmitting, when a user depresses the executionbutton for executing the first cooperation processing flow, aninstruction for executing the second cooperation processing flow to thetransfer destination, after the execution unit executes the firstcooperation processing flow, receiving a request for confirming whetheror not the processing flow can be executed, determining whether or notthe processing flow can be executed by the image processing apparatus,transmitting, when it is determined that the processing flow can beexecuted, the response indicating that the processing flow can beexecuted, to a transmission source of the received request, receivingthe second cooperation processing flow from the transmission source ofthe request, receiving the instruction for executing the secondcooperation processing flow, determining whether or not an executionbutton for executing the second cooperation processing flow is to bedisplayed, displaying, when it is determined that the execution buttonis to be displayed, the execution button for executing the secondcooperation processing flow, and executing the second cooperationprocessing flow when it is determined that the execution button is notto be displayed.

According to the present invention, when a processing flow includes atask that cannot be executed by the image processing apparatus, otherimage processing apparatuses capable of executing the processing floware searched for, and the processing flow is transferred to an imageprocessing apparatus that is determined as a transfer destination,whereby a button for executing the processing flow is displayed on theimage processing apparatus as the transfer destination, which makes itpossible to execute the processing flow as desired by a user withoutchanging the contents of the processing flow.

Further, according to the present invention, cooperation processingflows are newly generated by dividing the processing flow. By displayingbuttons for executing the cooperation processing flows, respectively,the user can execute the processing flow without changing the contentsthereof not only by the image processing apparatus as the transferdestination of a processing flow but also by the image processingapparatus as a transfer source.

Further, when a final task of the processing flow is a “printing”process, in the image processing apparatus as the transfer destination,the button for executing the cooperation processing flow is alsodisplayed on the image processing apparatus as the transfer destinationso as to cause the cooperation processing flow not to be executed untilthe execution button is depressed. This makes it possible to preventoccurrence of an inconvenience that when the user depresses theexecution button for the cooperation processing flow on the imageprocessing apparatus as the transfer source, the printing process isimmediately executed by another image processing apparatus physicallyaway from the image processing apparatus as the transfer source, therebyundesirably causing e.g. a confidential document of the user to be leftin a discharge tray. On the other hand, when the final task of theprocessing flow is not a printing process (transmission of a document toanother apparatus, or storage of a document in an HDD, for example), theexecution button for the cooperation processing flow is not displayed onthe image processing apparatus as the transfer destination. In thiscase, at a time point when the user depresses the execution button forthe cooperation processing flow on the image processing apparatus as thetransfer source, the apparatus as the cooperation destination alsoimmediately executes an associated processing flow. This makes itunnecessary for the user to move to the apparatus as the transferdestination, e.g. for log-in and depressing of a button, whereby it ispossible to perform a desired processing flow only by a simpleoperation.

Further features of the present invention will become apparent from thefollowing description of exemplary embodiments (with reference to theattached drawings).

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a view of an image processing system in which an imageprocessing apparatus according to a first embodiment of the presentinvention is connected to a network.

FIG. 2 is a block diagram of the internal configuration of an MFP as theimage processing apparatus appearing in FIG. 1.

FIG. 3 is a diagram of software modules of the MFP.

FIG. 4 is a diagram showing an example of a processing flow managementfile managed by the MFP 101.

FIG. 5A is a diagram showing an example of a processing flow definitionfile used in the image processing system shown in FIG. 1.

FIG. 5B is a diagram showing a tag extracted from the processing flowdefinition file in FIG. 5A.

FIG. 6 is a diagram showing an example of an operation screen which isdisplayed on an operating section 212 of the MFP 101 when User A haslogged in to the MFP 101.

FIG. 7 is a flowchart of a processing flow transfer process executed bythe MFP 101.

FIG. 8 is a diagram showing an example of a screen displaying aprocessing flow transfer destination candidate list which is displayedon the operating section of the MFP 101 during the processing flowtransfer process by the MFP 101.

FIG. 9A is a diagram showing an example of a first cooperationprocessing flow definition file.

FIG. 9B is a diagram showing a tag extracted from the first cooperationprocessing flow definition file in FIG. 9A.

FIG. 10A is a diagram showing an example of a second cooperationprocessing flow definition file.

FIG. 10B is a diagram showing a tag extracted from the secondcooperation processing flow definition file in FIG. 10A.

FIG. 11 is a diagram showing an example of an operation screen which isdisplayed on the operating section of the MFP 101 after the processingflow transfer process in FIG. 7 has been executed by the MFP 101.

FIG. 12 is a diagram showing an example of the processing flowmanagement file obtained after the processing flow transfer process inFIG. 7 has been executed by the MFP 101.

FIG. 13 is a flowchart of a processing flow reception process executedby an MFP 102 or an MFP 103.

FIG. 14 is a diagram showing an example of a processing flow managementfile obtained upon execution of the processing flow reception process inFIG. 13 by the MFP 102.

FIG. 15 is a diagram showing an example of an operation screen of theMFP 102 which is displayed when User A has logged in to the MFP 102.

FIG. 16 is a flowchart of a button display-determining process executedby an MFP.

FIG. 17 is a flowchart of a processing flow-executing process executedby an MFP.

FIG. 18 is a flowchart of a cooperation processing flow-executingprocess executed by the MFP 102 and the MFP 103.

FIG. 19A is a diagram showing a second example of the processing flowdefinition file.

FIG. 19B is a diagram showing a tag extracted from the processing flowdefinition file in FIG. 19A.

FIG. 20A is a diagram showing a second example of the first cooperationprocessing flow definition file.

FIG. 20B is a diagram showing a tag extracted from the first cooperationprocessing flow definition file in FIG. 20A.

FIG. 21A is a diagram showing a second example of the second cooperationprocessing flow definition file.

FIG. 21B is a diagram showing a tag extracted from the secondcooperation processing flow definition file in FIG. 21A.

FIG. 22 is a diagram showing an example of an operation screen of theMFP 101 which is displayed when User B has logged in to the MFP 101.

FIG. 23 is a diagram showing an example of a processing flow managementfile managed by the MFP 103.

FIG. 24 is a diagram showing an example of an operation screen of theMFP 103 which is displayed when User B has logged in to the MFP 103.

FIG. 25 is a diagram showing an example of an operation screen which theMFP 103 according to a second embodiment of the present inventiondisplays when User B has logged in before instructing execution of acooperation processing flow.

FIG. 26 is a diagram showing an example of an operation screen which theMFP 103 according to the second embodiment of the present inventiondisplays when User B has logged after instructing execution of acooperation processing flow.

FIG. 27 is a flowchart of a processing flow-executing process executedby an MFP according to a third embodiment of the present invention.

FIG. 28 is a flowchart of a cooperation processing flow-executingprocess executed by the MFP according to the third embodiment of thepresent invention.

DETAILED DESCRIPTION OF THE EMBODIMENTS

The present invention will now be described in detail below withreference to the accompanying drawings showing embodiments thereof.

FIG. 1 is a view of an image processing system in which an imageprocessing apparatus according to a first embodiment of the presentinvention is connected to a network.

Referring to FIG. 1, MFPs (Multifunction Peripherals) 101, 102 and 103are multifunction-type image forming apparatuses each as the imageprocessing apparatus according to the first embodiment of the presentinvention, and are connected to a LAN 100 such that the MFPs 101, 102and 103 are capable of communicating with each other. The MFP 101 is animage forming apparatus which is incompatible with a user certificationfunction and a document combining function, and has a host name of AAAand an IP address of 192.168.0.101. The MFP 102 is an image formingapparatus which is compatible with the user certification function butincompatible with the document combining function, and has a host nameof BBB and an IP address of 192.168.0.102. The MFP 103 is an imageforming apparatus which is incompatible with the user certificationfunction but compatible with the document combining function, and has ahost name of CCC and an IP address of 192.168.0.103.

The MFPs 101, 102 and 103 have respective processing flow applicationsincorporated therein. The processing flow application is defined as anapplication that executes a processing flow set by combining a series ofa plurality of image processing tasks. As described above, the imageprocessing task means processing that can be realized by any ofindividual functions of e.g. an image processing apparatus of amultifunction type, and is by no means limited to image processingalone. The editing and execution of a processing flow by a processingflow application will be described hereinafter.

Although in the network environment of the example illustrated in FIG.1, the MFPs 101, 102 and 103 are connected to the LAN 100, this is notlimitative, but not only MFPs but also a plurality of other apparatusesmay be connected to the LAN 100.

FIG. 2 is a block diagram showing the internal configuration of the MFP101 appearing in FIG. 1. Since the MFPs 102 and 103 have the sameinternal configuration as that of the MFP 101, a description will begiven of only the MFP 101.

The MFP 101 includes a controller unit 200, an operating section 212 asa UI (User Interface), a scanner section 270 as an image input device,and a printer section 295 as an image output device. The controller unit200 is connected to the scanner section 270 and the printer section 295.Further, the controller unit 200 is connected to the LAN 100 and apublic communication line (WAN) 214 to thereby receive and deliver imageinformation and device information input.

In the controller unit 200, a CPU 201 is a controller that controls theentire system. A RAM 202 is a system working memory for operation of theCPU 201 and is also an image memory for temporarily storing image data.A ROM 203 is a boot ROM which stores a system boot program. An HDD 204is a hard disk drive, and stores image data and software modules.

An operating section interface (I/F) 206 provides an interface betweenthe operating section 212 and the controller unit 200, and outputs imagedata displayed on the operating section 212 to the operating section212. A network interface (I/F) 210 is connected to the LAN 100, forreceiving and delivering information. A modem 213 is connected to thepublic communication line 214, for receiving and delivering imageinformation.

The above devices are connected to a system bus 207.

An image bus interface (I/F) 205 is a bus bridge that connects betweenthe system bus 207 and an image bus 208 for use in high-speed transferof image data, and performs conversion of data structure.

The following devices are connected to the image bus 208.

A raster image processor (RIP) 260 converts a PDL (Page DescriptionLanguage) code into a bitmap image. A device interface (I/F) 220connects between the scanner section 270 and the printer section 295,and the controller unit 200.

A scanner image processor 280 corrects, processes, and edits input imagedata. Also, the scanner image processor 280 has the function ofdetermining whether an input image is of a color original or amonochrome original, from a chroma signal (saturation signal) of theinput image, and storing the determination result. A printer imageprocessor 290 corrects, processes, and edits output image data.

An image rotating section 230 cooperates with the scanner imageprocessor 280 to rotate an image simultaneously when the image is readfrom the scanner section 270, and stores the resultant image (imagedata) in a memory. Further, the image rotating section 230 rotates animage (image data) stored in the memory and stores the resultant imagein the memory again. Further, the image rotating section 230 is capableof printing/outputting an image stored in the memory while rotating thesame in cooperation with the printer image processor 290.

A resolution converting section 231 converts the resolution of an imagestored in the memory and stores the resultant image in the memory again.A color space converting section 232 carries out matrix computation toconvert, for example, a YUV image stored in the memory into a Lab imageand stores the resultant image data in the memory again. A gradationconverting section 233 converts, for example, an 8-bit and 256-gradationimage stored in the memory into a 1-bit and 2-gradation image using anerror diffusion method or the like and stores the resultant image in thememory again. An image compression section 240 carries out expansion andcompression processing on multivalued image data by JPEG, and binaryimage data by JBIG, MMR, MR, or MH.

The image rotating section 230, the resolution converting section 231,the color space converting section 232, the gradation converting section233 and the image compression section 240 may carry out processing incooperation with one another. For example, it is possible tocontinuously carry out image rotation and resolution conversion of imagedata stored in the memory without storing the same in the memory.

FIG. 3 is a diagram of software modules of the MFP, concerning controlof a combination of the functions (hereinafter referred to as the“tasks”) of the MFP and a flow of processes. The illustrated softwaremodules are executed by the CPU 201.

Referring to FIG. 3, a processing flow application 300 is comprised of aflow executing section 305 and a flow management section 306. Theprocessing flow application 300 achieves the registration, editing andexecution of a processing flow by cooperating with the other softwaremodules in FIG. 3 (processing by a registration unit). The flowexecuting section 305 and the flow management section 306 will bedescribed in detail hereinafter.

A UI section 301 is a software module that performs display on theoperating section 212 via the operating section interface 206 andprocesses user inputs from the operating section 212. The UI section 301displays a screen formed by the processing flow application 300according to instructions from the processing flow application 300.Further, the UI section 301 transmits the user inputs from the operatingsection 212 and so forth to the processing flow application 300.

The processing flow application 300 passes the results of the userinputs transmitted from the UI section 301 to the flow executing section305. Although in the present embodiment, the UI section 301 is a moduleprovided outside the processing flow application 300, the UI section 301may be integrated in the processing flow application 300.

A communication section 302 is a software module that performscommunication (transmission and reception) by operating the networkinterface 210 or the modem 213. An authenticating section 303 performsuser authentication based on user's log-in information that is input bya user who operates the operating section 212 and is accepted by the UIsection 301, and user information received from the communicationsection 302, and manages a session of the user.

An authentication information management section 304 is a softwaremodule that manages user authentication information and responds to aninquiry of the authentication information from the authenticatingsection 303. Although in the present embodiment, the authenticationinformation management section 304 has the user authenticationinformation stored therein, the system may be configured such that anauthentication server, not shown, is provided separately from theauthentication information management section 304, for management of theauthentication information.

The flow executing section 305 is a software module that analyzes aprocessing flow definition file, described hereinafter. Further, theflow executing section 305 divides the processing flow into settings (ascan job setting, a print job setting, a transmission job setting, etc.)of tasks on a function basis.

The flow management section 306 is a software module that manages aprocessing flow management file for determining which of processing flowexecution buttons is/are displayed on the operating section 212 when auser is in a logged-in state. Further, the flow management section 306manages the processing flow definition file that describes settings forexecution of the processing flow. The processing flow management fileand the processing flow definition file will be described in more detailhereinafter. In the present embodiment, a description of a processingflow is handled as a file, and the file is loaded into the RAM 202 whenexecuting the processing flow.

A task executing section 307 is a software module that generates tasksand executes the generated tasks. A task list management section 308 isa software module that manages tasks to be executed.

Each task is generated according to a request from the UI section 301,the communication section 302, or the flow executing section 305 of theprocessing flow application 300. For example, when a user instructscopying or scanning via the UI section 301, settings of a copy task or ascan task are passed from the UI section 301 to the task executingsection 307. On the other hand, each task is registered in the task listmanagement section 308. The task executing section 307 sequentiallyexecutes tasks managed by the task list management section 308.Similarly, also when settings of tasks are passed from another MFP(image forming apparatus) or a PC via the communication section 302, thetasks are processed in the same manner as described above.

FIG. 4 is a diagram showing an example of a processing flow managementfile managed by the MFP 101.

Although in the present embodiment, the processing flow management file400 is in the form of a table, as illustrated in FIG. 4, it may be inthe form of a text file e.g. in the CSV (Comma Separated Values) formator in the XML (Extensive Markup Language). In FIG. 4, a column 401stores respective management IDs of processing flows. A column 402stores the respective names of the processing flows. A column 403 storesinformation (disclosure range) indicative of who has a right foraccessing each processing flow. For example, a right for accessing aprocessing flow registered with an ID of 1 and executing the same isgiven to “User A”, and a button for executing the processing flow isdisplayed when User A has logged in. Further, if the right for accessinga processing flow is set as “shared”, the processing flow is displayedirrespective of the logged-in user.

A column 404 stores tasks that constitute each processing flow. A column405 stores information indicative of whether or not a processing flow isto be executed in cooperation with an MFP other than the MFP 101. When aprocessing flow is to be executed in cooperation with an MFP other thanthe MFP 101 (hereinafter referred to as a “cooperation processingflow”), “Y” is stored in a box of the column 405 associated with theprocessing flow, whereas when the processing flow can be executed by theMFP 101 by itself, “N” is stored in the associated box of the column405.

When “Y” is stored in the column 405, i.e. when the processing flow is acooperation processing flow, a serial ID of the cooperation processingflow is stored in a box of a column 406 associated with the processingflow. The serial ID is automatically given only to a cooperationprocessing flow by the MFP 101 during generation of the cooperationprocessing flow, and a unique value in the network is given to thecooperation processing flow. Further, once a value is given to thecooperation processing flow during generation thereof, the value is notchanged thereafter.

When the processing flow is a cooperation processing flow, informationindicative of the type of cooperation of the cooperation processing flowis stored in a box of a column 407 associated with the processing flow.When the MFP 101 executes the cooperation processing flow earlier and anMFP other than the MFP 101 executes a predetermined cooperationprocessing flow other than the cooperation processing flow later, “Src”is stored in the associated box of the column 407. On the other hand,when the MFP other than the MFP 101 executes a predetermined cooperationprocessing flow other than the cooperation processing flow earlier, andthen the MFP 101 executes the cooperation processing flow later, “Dst”is stored in the associated box of the column 407.

When the processing flow is a cooperation processing flow, informationon an MFP as an cooperation destination is stored in a box of a column408 associated with the processing flow. For example, the column 408stores the host name and the IP address of the MFP as the cooperationdestination, and the serial ID of the cooperation processing flow to beexecuted by the cooperation destination.

FIGS. 5A and 5B are diagrams showing an example of a processing flowdefinition file used in the image forming system in FIG. 1. FIG. 5Ashows an example of the processing flow definition file, and FIG. 5Bshows a tag extracted from the processing flow definition file.

In the illustrated example, it is assumed that the processing flowdefinition file 500 is handled as an XML file. The processing flowdefinition file 500 can be generated by an MFP incorporating theprocessing flow application 300. Further, it is assumed that tasksincluded in a processing flow are represented as XML tags, and the orderof appearance of the tasks in the XML file is regarded as the order ofprocessing of the tasks. In FIG. 5, details of settings configured forthe tasks are omitted.

In FIG. 5A, a tag 501 indicates that a scan task is executed using thescanner section 270 to input a document. A tag 502 indicates that a usercertificate is given to the document. A tag 503 indicates that a sendtask is executed to transmit the document to a transmission destination.A tag 504 indicates an address designated as the transmissiondestination in the settings of the send task. By additionally providinga tag 504 or tags 504, it is possible to set a plurality of addresses astransmission destinations. Further, for a send task, there can be setany of respective destinations of mail transmission, file transmission,such as SMB transmission, facsimile transmission, etc.

In FIG. 5B, a tag 550 (task flow tag) indicates that there is oneprocessing flow to be executed, and is comprised of an attribute 551representing the management ID of the processing flow and an attribute552 representing the name of the processing flow.

FIG. 6 is a diagram showing an example of an operation screen which isdisplayed on the operating section 212 of the MFP 101 when User A haslogged in to the MFP 101.

In FIG. 6, a button 601 is for starting the processing flow application300 to display a screen. In the present embodiment, it is assumed thatno button for starting another application is displayed.

Buttons 602 and 603 are operated for calling and executing processingflows assigned to the respective buttons. Although not shown, when UserA has logged in, there are displayed respective buttons for processingflows each having “User A” set as a disclosure range in the column 403of the processing flow management file 400, whereas when User B haslogged in, there are displayed respective buttons for processing flowseach having “User B” set as the disclosure range in the column 403,similarly to the case of User A.

A button 604 is for performing transition to a shared screen that isdisplayed irrespective of the logged-in user. Although not shown, whenthe button 604 is depressed, there are displayed respective buttons forprocessing flows each having “shared” set as the disclosure range in thecolumn 403 of the processing flow management file 400. A button 605 isfor displaying a screen for use in generating (registering) and editinga processing flow.

FIG. 7 is a flowchart of a process for transferring a processing flow,which is executed when a user depresses a button associated with theprocessing flow including a task that cannot be executed by the MFP 101.

In FIG. 7, steps S701 to S709 indicate processing steps of a processingflow transfer process executed by the MFP 101, and a control programimplementing the processing flow transfer process is stored in the ROM203 of the MFP 101, and is executed by the CPU 201.

In an example described hereafter with reference to FIG. 7, it isassumed that the MFP 101 executes the processing flow transfer processwhen User A logs in to the MFP 101 and depresses the button 602appearing in the FIG. 6 screen.

The processing flow associated with the button 602 is described in theprocessing flow definition file 500 as “scanning in a document, giving auser certificate to a scanned-in document, and transmitting thedocument”. However, as mentioned hereinabove, the MFP 101 isincompatible with the user certification function, so that it cannotexecute part of the processing flow which defines “the MFP 101 gives auser certificate”. In such a case, the MFP 101 broadcasts a request ofexecutability check on the processing flow definition file 500 to theother devices (the MFPs 102 and 103 in the present embodiment) on theLAN 100, to thereby inquire of each of the other devices whether or notit can execute the processing flow definition file 500 (step S701). Thisstep is an example of processing executed by a transmission unit in thepresent invention.

Next, the MFP 101 awaits reception of a response (executable response)to the above inquiry from the other devices on the LAN 100 for apredetermined time period (step S702). This step is an example ofprocessing executed by a reception unit in the present invention. In thestep S702, if there is no device that makes the executable responsewithin the predetermined time period (NO to the step S702), the MFP 101determines that there is no device capable of executing the processingflow definition file 500 on the LAN 100, and immediately terminates thepresent process.

On the other hand, if there is any device that has made an executableresponse within the predetermined time period (YES to the step S702),the MFP 101 displays information on the device(s) on the operatingsection 212 in a processing flow transfer destination candidate list(step S703). In the present embodiment, since the MFP 102 is compatiblewith the user certification function, as mentioned hereinabove, the MFP101 receives an executable response from the MFP 102. Further, since theMFP 103 is incompatible with the user certification function, the MFP103 immediately discards the request of the executability check receivedfrom the MFP 101, and makes no response to the MFP 101.

FIG. 8 is a diagram showing an example of a screen of a processing flowtransfer destination candidate list which is displayed on the operatingsection 212 in the step S703.

As shown in FIG. 8, the processing flow transfer destination candidatelist 801 shows the host names and the IP addresses of devices that havemade the executable response in the step S702. In the presentembodiment, since only the MFP 102 has made the executable response, thehost name (BBB) and the IP address (192.168.0.102) of the MFP 102 areindicated.

The MFP 101 displays a screen of the processing flow transferdestination candidate list illustrated in FIG. 8 on the operatingsection 212, and waits for the user to determine a device to which theprocessing flow is to be transferred (step S704). When the user selectsa desired device and depresses a determination button 802, the processproceeds to a step S705. On the other hand, when the user depresses acancel button 803, the MFP 101 immediately terminates the presentprocess. This step (processing) is an example of processing executed bya decision unit in the present invention.

In the step S705, the MFP 101 divides the processing flow definitionfile 500 to generate a first cooperation processing flow definition file900 including only a task executable by the MFP 101 itself and a secondcooperation processing flow definition file 1000 including a task thatcannot be executed by the MFP 101 itself. This step is an example ofprocessing executed by a generation unit in the present invention.

FIGS. 9A and 9B are diagrams showing examples of the first cooperationprocessing flow definition file 900 that the MFP 101 generates in thestep S705. FIG. 9A shows the first cooperation processing flowdefinition file 900, and FIG. 9B shows a tag extracted from the firstcooperation processing flow definition file 900.

In FIG. 9A, a tag 901, in which the contents of the tag 501 of theprocessing flow definition file 500 are copied as they are, indicatingthat a scan task using the scanner section 270 is executed to input adocument. A tag 902 indicates that a send task is executed to transmitthe document to a transmission destination. A tag 903 indicates anaddress set to the transmission destination for the send task. The IPaddress (192.168.0.102) of the MFP 102, which is the transmissiondestination of a cooperation processing flow, is set to the tag 903. Atag 904 indicates a document to be transmitted to the MFP 102. A tag 905indicates a serial ID of the cooperation processing flow that the MFP101 instructs the MFP 102 to execute.

The description of the tags 902 to 905 indicates processing of“transmitting data indicated by the tag 904 to a destination indicatedby the tag 903, and instructing the destination to execute a cooperationprocessing flow indicated by the tag 905”.

In FIG. 9B, a tag 950 indicates that one processing flow is executed.The tag 950 is comprised of the following attributes:

An attribute 951 represents a management ID of the processing flow. Anattribute 952 represents a name of the processing flow. An attribute 953represents a serial ID of the processing flow. An attribute 954represents the serial ID of the cooperation processing flow to beexecuted by the cooperation destination.

The attributes 953 and 954 are set only for a cooperation processingflow. Unique values in the network are set as respective serial IDsthereof. In the present embodiment, it is assumed that each serial ID isformed by a twelve-digit number composed of “lower eight digits of anMAC (Media Access Control) address of an MFP (image formingapparatus)”+“a four-digit sequential number managed by the MFP”.However, the serial ID is only required to be a unique value in thenetwork, and is not necessarily required to be configured as mentionedabove. The serial ID may be configured in various forms including thenumber of digits.

FIGS. 10A and 10B are diagrams showing examples of the secondcooperation processing flow definition file 1000 that the MFP 101generates in the step S705. FIG. 10A shows the second cooperationprocessing flow definition file 1000, and FIG. 10B shows a tag extractedfrom the second cooperation processing flow definition file 1000.

In FIG. 10A, a tag 1001 indicates that a reception task is executed toreceive a document. A tag 1002, in which the contents of the tag 502 ofthe processing flow definition file 500 are copied as they are,indicates that a user certificate is given to the document. A tag 1003,in which the contents of the tag 503 of the processing flow definitionfile 500 are copied as they are, indicates that a send task is executedto transmit the document to a transmission destination. A tag 1004, inwhich the contents of the tag 504 of the processing flow definition file500 are copied as they are, indicates an address set to the transmissiondestination for the send task.

In FIG. 10B, a tag 1050 indicates that one processing flow is executed.The tag 1050 is comprised of the following attributes:

An attribute 1051 represents a management ID of the processing flow.However, the second cooperation processing flow definition file 1000 istransferred to another MFP in a step S706 in FIG. 7, referred tohereinafter, and has an arbitrary management ID given thereto by the MFPas the transfer destination, and hence here, the management ID is notgiven to the attribute 1051.

An attribute 1052 represents the name of the processing flow. Anattribute 1053 represents the serial ID of the processing flow. Anattribute 1054 represents a serial ID of a cooperation processing flowto be executed by a cooperation source.

The attributes 1053 and 1054 are set only for a cooperation processingflow. Unique values in the network are set as respective serial IDs, asmentioned hereinabove.

As described hereinabove, the processing flow definition file 500defines the processing flow of “scanning in a document, giving a usercertificate to a scanned-in document, and transmitting the document”.However, the MFP 101 can execute the processing flow only up to“scanning in a document”. Therefore, a processing flow of “scanning in adocument and transmitting a scanned-in document to the MFP 102” isdefined in the first cooperation processing flow definition file 900including only a task or consecutive tasks executable by the MFP 101.Further, the second cooperation processing flow definition file 1000formed by tasks remaining to be executed defines a processing flow of“giving a user certificate to a document received from the MFP 101 andtransmitting the document” in a manner continuous to the processingdefined in the first cooperation processing flow definition file 900.

Referring again to FIG. 7, in the step S706, the MFP 101 transfers theprocessing flow definition file 500 and the second cooperationprocessing flow definition file 1000 to the MFP 102 as a transferdestination of the cooperation processing flow (step S706). This step isan example of processing executed by a transfer unit in the presentinvention. Then, the button 602 for carrying out the processing flowdefinition file 500 is deleted from the FIG. 6 operation screendisplayed on the operating section 212 (step S707). Further, in place ofthe button 602, a button 606 for executing the first cooperationprocessing flow definition file 900 is displayed on the operation screendisplayed on the operating section 212 (step S708). This step is anexample of processing executed by a display unit in the presentinvention. After that, the contents of the processing flow managementfile 400 are updated (step S709), followed by terminating the presentprocess.

FIG. 11 is a diagram showing an example of an operation screen which isdisplayed on the operating section 212 after the processing flowtransfer process in FIG. 7 has been executed by the MFP 101. The FIG. 11operation screen is distinguished from the FIG. 6 operation screen inthat Me button 606 is displayed in place of the button 602.

The button 606 is for executing the first cooperation processing flowdefinition file 900. On the button 606, there are displayed words of“[COOPERATION FLOW] COOPERATION HOST: BBB” which indicates that thebutton 606 is for executing a processing flow in cooperation with theMFP 102.

The buttons 601, 603, 604 and 605 illustrated in FIG. 11 are not changedfrom those described above with reference to FIG. 6, and detaileddescriptions thereof are omitted.

FIG. 12 is a diagram showing an example of the processing flowmanagement file 400 obtained after the processing flow transfer processin FIG. 7 has been executed by the MFP 101.

In FIG. 12, as a result of execution of the processing flow transferprocess in FIG. 7, a processing flow “CONFIDENTIAL DOCUMENTTRANSMISSION” is changed to the cooperation processing flow with the MFP102. To this end, “Y” indicating that the processing flow is acooperation processing flow is set in an associated box of the column405.

Further, “aabbccdd0001”, which is the serial ID of the cooperationprocessing flow, is set in an associated box of the column 406. “Src”,which indicates that the cooperation processing flow is a firstcooperation processing flow, i.e. that after execution of thecooperation processing flow, a cooperation processing flow associatedtherewith is to be executed by an MFP as a cooperation destination, isset in an associated box of the column 407.

“BBB/192.168.0.102”, which indicates that the MFP as the cooperationdestination is the MFP 102, is set in an associated box of the column408. Further, “aabbccdd0002”, which is the serial ID of the cooperationprocessing flow to be executed by the MFP 102, is also set in the box ofthe column 408.

FIG. 13 is a flowchart of a processing flow reception process executedby the MFP 102 and the MFP 103 when the MFP 101 executes the processingflow transfer process shown in FIG. 7.

In FIG. 13, steps S1301 to 1306 indicate processing steps of theprocessing flow reception process executed by the MFP 102 and the MFP103 when the MFP 101 executes the step S701 of the processing flowtransfer process in FIG. 7 to transmit the request of executabilitycheck on the processing flow definition file 500. A control programimplementing the processing flow reception process is stored in the ROM203 of each of the MFPs 102 and 103, and is executed by the CPU 201 ofeach MFP.

When the MFP 102 and the MFP 103 receive the request of executabilitycheck on the processing flow definition file 500 from the MFP 101 (stepS1301), the MFP 102 and the MFP 103 analyze the processing flowdefinition file 500 (step S1302). This step is an example of processingexecuted by a request receiving unit in the present invention. Further,the MFP 102 and the MFP 103 determine whether or not all the tasksdescribed in the processing flow definition file 500 are executable bythem (step S1303). This step is an example of processing executed by adetermination unit in the present invention. If there is even oneunexecutable task (NO to the step S1303), the MFP 102 and the MFP 103internally discards the request of executability check, and immediatelyterminate the present process.

On the other hand, if the MFP 102 and/or the MFP 103 determine(s) thatall the tasks are executable (YES to the step S1303), the MFP 102 and/orthe MFP 103 transmit(s) the executable response to the MFP 101 as thetransmission source of the request of the executability check (stepS1304). This step is an example of processing executed by a responsetransmitting unit in the present invention. In the present embodiment,the MFP 102 is compatible with the user certification function but theMFP 103 is incompatible therewith. Therefore, the MFP 102 determinesthat the processing flow definition file 500 is executable by itself,and transmits the executable response to the MFP 101. In contrast, theMFP 103 determines that it cannot perform the task of giving a usercertificate, out of the tasks described in the processing flowdefinition file 500, and internally discards the request of theexecutability check therein to make no response to the MFP 101.

Next, the MFP 102 awaits reception of the processing flow definitionfile and the second cooperation processing flow definition file from theMFP 101 for a predetermined time period (step S1305). When the MFP 102does not receive the processing flow definition file and the secondcooperation processing flow definition file from the MFP 101 within thepredetermined time period, the MFP 102 immediately terminates thepresent process. In the present embodiment, it is assumed that the MFP101 executes the process in the step S706 within the predetermined timeperiod.

Upon reception of the processing flow definition file 500 and the secondcooperation processing flow definition file 1000, the MFP 102 registersthe contents of the files 500 and 1000 in a processing flow managementfile 1400, described hereinafter (step S1306), followed by terminatingthe present process. This step is an example of processing executed by aprocessing flow receiving unit in the present invention. When theprocessing flow definition file 500 is received, a management ID set inthe attribute 551 of the tag 550 thereof has a value for internalmanagement of the file 500 by the MFP 101. Therefore, the MFP 102 resetsthe attribute 551 to a value of the management ID optimum for internalmanagement of the file 500 thereby. Similarly, the MFP 102 also set theattribute 1051 of the tag 1050 of the second cooperation processing flowdefinition file 1000 to an optimum management ID.

FIG. 14 is a diagram showing an example of the processing flowmanagement file which is obtained after execution of the processing flowreception process in FIG. 13 by the MFP 102, and is managed by the MFP102.

Although in the present embodiment, the processing flow management file1400 is in the form of a table, as illustrated in FIG. 14, it may be inthe form of a text file e.g. in the CSV format or in the XML.

Referring to FIG. 14, a column 1401 stores management IDs of processingflows. A column 1402 stores the respective names of the processingflows. A column 1403 stores information (disclosure range) indicative ofwho has a right for accessing each processing flow. For example, a rightfor accessing a processing flow registered with an ID of 1 is given to“User A” and a button for executing the processing flow is displayedwhen User A has logged in, as described above. Further, if the right foraccessing a processing flow is set as “shared”, the processing flow isdisplayed irrespective of the logged-in user.

A column 1404 stores tasks that constitute each processing flow. Acolumn 1405 stores information indicative of whether or not theprocessing flow is a cooperation processing flow. If the processing flowis a cooperation processing flow, “Y” is stored in a box of the column1405 associated with the processing flow, whereas when the processingflow can be executed by the MFP by itself, “N” is stored in theassociated box of the column 1405.

When “Y” is stored in the column 1405, i.e. when the processing flow isa cooperation processing flow, a serial ID of the cooperation processingflow is stored in a box of a column 1406 associated with the processingflow.

When the processing flow is a cooperation processing flow, informationindicative of the type of cooperation of the cooperation processing flowis stored in a box of a column 1407 associated with the processing flow.When the cooperation processing flow is a first cooperation processingflow, i.e. when the MFP 102 executes the cooperation processing flowearlier and an MFP other than the MFP 102 executes a predeterminedcooperation processing flow other than the cooperation processing flowlater, “Src” is stored in the associated box of the column 1407. On theother hand, when the cooperation processing flow is a second cooperationprocessing flow, i.e. when the MFP other than the MFP 102 executes apredetermined cooperation processing flow other than the cooperationprocessing flow earlier, and then the MFP 102 executes the cooperationprocessing flow later, “Dst” is stored in the associated box of thecolumn 1407.

When the processing flow is a cooperation processing flow, informationon an MFP as an cooperation destination is stored in a box of a column1408 associated with the processing flow. For example, in the associatedbox of the column 1408, there are set the host name and the IP addressof the MFP as the cooperation destination, and the serial ID of thecooperation processing flow to be executed by the cooperationdestination. Here, the processing flow registered with an ID of 1corresponds to the processing flow definition file 500, and a processingflow registered with an ID of 2 corresponds to the second cooperationprocessing flow definition file 1000. Since the processing flowdefinition file 500 defines a processing flow executable by the MFP 102by itself, “N” is stored in the associated box of the column 1405.

On the other hand, the second cooperation processing flow definitionfile 1000 defines a cooperation processing flow which is to executed incooperation with the MFP 101 and is executed in association with thefirst cooperation processing flow definition file 900 executed by theMFP 101. Therefore, “Y” is stored in the associated box of the column1405. Further, since the second cooperation processing flow definitionfile 1000 is executed in a sequence of MFP 101→MFP 102, “Dst” is storedin the associated box of the column 1407. Further, the host name (AAA)and the IP address (192.168.0.101) of the MFP 101 as a cooperationpartner are stored in the associated box of the column 1408.

FIG. 15 is a diagram showing an example of an operation screen which isdisplayed on the operating section 212 of the MFP 102 when User A haslogged in to the MFP 102.

In FIG. 15, a button 1501 is for starting the processing flowapplication 300 to display a screen. In the present embodiment, it isassumed that no button for starting another application is displayed. Abutton 1502 is for calling and executing a processing flow assignedthereto.

A button 1503 is for performing transition to a shared screen that isdisplayed irrespective of the logged-in user. A button or buttons (notshown) displayed when the button 1503 is depressed is/are for aprocessing flow or processing flows for which the disclosure range inthe column 1403 of the processing flow management file 1400 is set to“shared”.

A button 1504 is for displaying a screen for use in generating andediting a processing flow.

Although not shown, when User A has logged in, there are displayedrespective buttons for processing flows each having “User A” set as thedisclosure range in the column 1403 of the processing flow managementfile 1400, whereas when User B has logged in, there are displayedrespective buttons for processing flows each having “User B” set as thedisclosure range in the column 1403, similarly to the case of User A.However, even when a cooperation processing flow has “User A” set as thedisclosure range in the column 1403, the cooperation processing flow isnot displayed as a button if it satisfies all the following conditions:“Y” is set as a cooperation flow in the column 1405; “Dst” is as a typeof cooperation in the column 1407, and further a task other than “Print”is set as a final task in the column 1404.

Assuming that the final task of the cooperation processing flow is e.g.“Send” other than “Print”, the cooperation processing flow isautomatically executed after execution of the first cooperationprocessing flow by an MFP as a cooperation source, using the executionthereof as a trigger. Therefore, no button e.g. for “Send” is displayedsince User A is not required to depress a button on the operation screendisplayed on the operating section 212 of the MFP 102 in FIG. 15.

On the other hand, if the final task of the cooperation processing flowis “Print”, a button therefor is displayed. In this case, after thefirst cooperation processing flow has been executed by the MFP as thecooperation source, when User A comes to the MFP 102 to log in to theMFP 102 and depresses an associated button, the cooperation processingflow is executed.

FIG. 16 is a flowchart of a button display-determining process which isexecuted by an MFP according to a login user.

In FIG. 16, steps S1601 to 1606 indicate processing steps of the buttondisplay-determining process for determining whether or not a button forcausing a MFP to execute a processing flow is to be displayed on theoperation screen of the operating section 212 of the MFP.

As a result of execution of the present process, a button determined asa “display button” is displayed on the operation screen of the operatingsection 212, whereas as a result of execution of the present process, abutton determined as a “non-display button” is not displayed on theoperation screen of the operating section 212. Further, a controlprogram implementing the button display-determining process is stored inthe ROM 203 of each MFP, and is executed by the CPU 201 thereof. Here,the steps S1601 to 1606 will be described by taking a case where the MFP102 performs the button display-determining process as an example.

When a user has logged in to the MFP 102, the MFP 102 determines withreference to the processing flow management file 1400 whether or not,for each of registered processing flows, a disclosure range set in thecolumn 1403 matches the login user (step S1601). As a result of thedetermination, if the disclosure range does not match the login user (NOto the step S1601), a button for executing the processing flow isdetermined as a “non-display button” (step S1606), followed byterminating the present process.

On the other hand, as a result of the determination in the step S1601,if the disclosure range matches the login user (YES to the step S1601),the MFP 102 determines based on the content of the associated box of thecolumn 1405 whether or not the processing flows is a cooperationprocessing flow (step S1602). If it is determined that the processingflow is not a cooperation processing flow (NO to the step S1602), abutton for executing the processing flow is determined as a “displaybutton” (step S1605), followed by terminating the present process.

On the other hand, if it is determined in the step S1602 that theprocessing flow is a cooperation processing flow, the process proceedsto a step S1603, wherein it is determined based on the type ofcooperation of the cooperation processing flow set in the associated boxof the column 1407 whether or not the cooperation processing flow isexecuted in a sequence of “other MFP 101”→“MFP 102”, that is, thecooperation processing flow is a second cooperation processing flow. Ifit is determined that the cooperation processing flow is not the secondcooperation processing flow (NO to the step S1603), a button forexecuting the processing flow is determined as a “display button” (stepS1605), followed by terminating the present process.

On the other hand, if it is determined in the step S1603 that thecooperation processing flow is a second cooperation processing flow, itis further determined based on the content of the associated box of thecolumn 1404 whether or not the final task of the cooperation processingflow is “Print” (printing process) (step S1604). If it is determinedthat the final task is “Print” (YES to the step S1604), a button forexecuting the cooperation processing flow is determined as a “displaybutton” (step S1605), followed by terminating the present process.

On the other hand, if it is determined that the final task is processing(e.g. “Send”) other than “Print” (NO to the step S1604), a button forexecuting the cooperation processing flow is determined as a“non-display button” (step S1606), followed by terminating the presentprocess. As described above, it is determined whether or not a button isto be displayed, depending on whether or not the final task of thesecond cooperation processing flow is a printing process.

As described hereinabove, the processing flow for “scanning in adocument, giving a user certificate to a scanned-in document, andtransmitting the document” is transferred from an initially registereddevice (MFP 101) incapable of executing the processing flow to anotherdevice (MFP 102) capable of executing the processing flow. Further, theprocessing flow is also registered in the MFP 101 as a cooperationprocessing flow. This enables the user to carry out the above-describeddesired processing flow without changing its contents, not only by theMFP 102 but also by the MFP 101.

Next, a description will be given of operation processes of processingflows executed by MFPs.

FIG. 17 is a flowchart of a processing flow-executing process executedby an MFP as the image processing apparatus according to the firstembodiment.

In FIG. 17, steps S1701 to 1707 indicate processing steps of theprocessing flow-executing process executed by the MFP. Further, acontrol program implementing the processing flow-executing process isstored in the ROM 203 of each MFP, and is executed by the CPU 201thereof.

First, the steps S1701 to 1707 will be described by taking an operationprocess which is executed by the MFP 102 when User A wishes to cause theMFP 102 to execute a processing flow, as an example.

The MFP 102 awaits occurrence of login by a user (step S1701). Now, letit be assumed that User A has logged in. Then, the MFP 102 performs thebutton display-determining process in FIG. 16, for the processing flowsregistered in the processing flow management file 1400 managed by theMFP 102 (step S1702). As a result of the button display-determiningprocess, the MFP 102 displays the FIG. 15 operation screen for User A onthe operating section 212 (step S1703).

Next, the MFP 102 waits for depression of the button 1502 for executingthe associated processing flow by User A on the FIG. 15 operation screen(step S1704). Here, when it is detected that User A has logged out bydepressing a logout key, not shown, without depressing the button 1502,the MFP 102 immediately terminates the present process.

When the MFP 102 detects depression of the button 1502 in the step 1704,the MFP 102 executes the contents of the processing flow definition file500 associated with the button 1502 (step S1705). Next, the MFP 102determines whether or not the present processing flow is a firstcooperation processing flow (step S1706). Here, since the processingflow definition file 500 associated with the button 1502 is not a firstcooperation processing flow, the MFP 102 immediately terminates thepresent process.

Similarly, the steps S1701 to 1707 will be described by taking anoperation process of the MFP 101 which is executed when User A wishes tocause the MFP 101 to execute a processing flow, as an example.

The MFP 101 awaits occurrence of login by a user (step S1701). Now, letit be assumed that User A has logged in. Then, the MFP 101 performs thebutton display-determining process in FIG. 16, for the processing flowsregistered in the processing flow management file 400 managed by the MFP101 (step S1702). As a result of the button display-determining process,the MFP 101 displays the FIG. 11 operation screen for User A on theoperating section 212 (step S1703).

Next, the MFP 101 waits for depression of the button 603 or 606 forexecuting the associated processing flow by User A on the FIG. 11operation screen (step S1704). Here, when it is detected that User A haslogged out by depressing a logout key, not shown, without depressing thebutton 603 or 606, the MFP 101 immediately terminates the presentprocess. In the illustrated example, it is assumed that User A hasdepressed the button 606.

When the MFP 101 detects depression of the button 606 in the step 1704,the MFP 101 executes the contents of the first cooperation processingflow definition file 900 associated with the button 606 (step S1705). Asdescribed above, the first cooperation processing flow is defined in thefirst cooperation processing flow definition file 900 (step S1706).Therefore, the MFP 101 transmits an instruction for executing the secondcooperation processing flow definition file 1000 to the MFP 102 as acooperation destination (step S1707). This step is an example ofprocessing executed by a transmission unit in the present invention.After execution of the above-described steps, the MFP 101 terminates thepresent process.

As described hereinabove, as to a processing flow executable by an MFPby itself, such as that defined by the processing flow definition file500 assuming that it is in the MFP 102, the processing flow is executedby depressing a button associated therewith until it is completed. Onthe other hand, as to a cooperation processing flow that is to beexecuted in cooperation with another MFP, such as that defined by thefirst cooperation processing flow definition file 900 for the MFP 101,only tasks consecutively executable by the MFP are executed bydepressing a button associated with the cooperation processing flow. Aninstruction for executing the remaining portion of the cooperationprocessing flow, formed by tasks to be executed after the executabletasks, is transmitted from the MFP to the other MFP as the cooperationdestination.

FIG. 18 is a flowchart of a cooperation processing flow-executingprocess which is executed by each of the MFPs 102 and 103 as cooperationdestinations upon reception of an instruction for executing apredetermined cooperation processing flow from the MFP 101 as acooperation source.

In FIG. 18, steps S1801 to 1807 indicate processing steps of thecooperation processing flow-executing process executed by the MFPs 102and 103 as the cooperation destinations. A control program implementingthe cooperation processing flow-executing process is stored in the ROM203 of each of the MFPs 102 and 103 as the cooperation destinations, andis executed by the CPU 201 thereof.

The MFPs (here, the MFPs 102 and 103) each await reception of theinstruction for executing a cooperation processing flow from another MFP(here, MFP 101) (step S1801). This step is an example of processingexecuted by an execution instruction-receiving unit in the presentinvention. Upon reception of the execution instruction, the MFP performsthe button display-determining process in FIG. 16 for the cooperationprocessing flow instructed to be executed, with reference to theprocessing flow management file (step S1802). Then, the MFP determineswhether or not a button for the cooperation processing flow is a“display button” (step S1803). As a result of the determination, if theMFP determines that the button is a “non-display button”, it immediatelyexecutes the cooperation processing flow (step S1807), followed byterminating the present process.

On the other hand, if the MFP determines in the step S1803 that thebutton is a “display button”, it waits for the user to log in (stepS1804). When the user has logged in, the MFP displays the button forexecuting the cooperation processing flow (step S1805). This process isan example of an execution button display unit in the present invention.Then, the MFP waits for the user to depress the button (step S1806), andwhen the user depresses the button, the MFP executes the cooperationprocessing flow (step S1807). This process is an example of a secondcooperation processing flow executing unit in the present invention.After execution of the above-described steps, the MFP terminates thepresent process.

Next, the cooperation processing flow-executing process in FIG. 18 willbe described by applying the same to the operation process of the MFP102 which is executed when the MFP 101 executes the processingflow-executing process in FIG. 17 and instructs the MFP 102 to executethe second cooperation processing flow definition file 1000 associatedwith the first cooperation processing flow definition file 900.

The MFP 102 receives the instruction for executing a cooperationprocessing flow having a serial ID of “aabbccdd0002” from the MFP 101(step S1801). It is understood with reference to the processing flowmanagement file 1400 that a cooperation processing flow associated withthe serial ID of “aabbccdd0002” is registered with a management ID of“2”. When the cooperation processing flow having the management ID of“2” is subjected to the button display-determining process in FIG. 16(step S1802), it is understood from the content of an associated box ofthe column 1404 that the final task of the cooperation processing flowis not “Print”, and it is determined that a button therefor is a“non-display button” (NO to the step S1803). Therefore, the MFP 102immediately executes the processing flow of “giving a user certificateto a document received from the MFP 101 and transmitting the document”,which is the content of the second cooperation processing flowdefinition file 1000 (step S1807).

The operation processes of the MFPs in the present embodiment aredescribed by taking the processing flow of “scanning in a document,giving a user certificate to a scanned-in document, and transmitting thedocument” as an example.

Next, the operation processes of the MFPs in the present embodiment willbe further described by taking another new processing flow of “scanningin a document, combining a scanned-in document and a document stored inthe HDD, and printing the combined document” as an example. Here,attention is paid to a “document combining printing” processing flow.This processing flow is registered in the MFP 101 as a management ID of3 in FIG. 4, and the disclosure range thereof is set to User B.

FIGS. 19A and 19B are diagrams showing an example of a processing flowdefinition file of the “document combining printing” processing flow.FIG. 19A shows the processing flow definition file of the “documentcombining printing” processing flow. FIG. 19B shows a tag extracted fromthe processing flow definition file.

In the present embodiment, it is assumed that the processing flowdefinition file 1900 is an XML file. This processing flow definitionfile can be generated by an MFP incorporating the processing flowapplication 300. Further, it is assumed that tasks included in theprocessing flow are represented as XML tags, and the order of appearanceof the tasks in the XML file is regarded as the order of processing ofthe tasks. In FIG. 19, details of settings configured for the tasks areomitted.

In FIG. 19A, a tag 1901 indicates that a scan task is executed using thescanner section 270 to input a document. A tag 1902 indicates that imagedata stored in the HDD 204 is handled as an input document. A tag 1903specifies the image data stored in the HDD 204.

A tag 1904 indicates that a task for combining documents is carried outto combine a plurality of documents into a single document. A tag 1905specifies documents to be combined. A tag 1906 indicates that a printingtask is executed to print the document.

In FIG. 19B, a tag 1950 indicates that one processing flow is executed,and is comprised of an attribute 1951 representing the management ID ofthe processing flow and an attribute 1952 representing the name of theprocessing flow.

Here, in the present embodiment, the MFP 101 is an image formingapparatus which is incompatible with the document combining function.Therefore, when User B has logged in to the MFP 101 and depresses anexecution button associated with the processing flow definition file1900, the MFP 101 carries out the processing flow transfer process inFIG. 7 to attempt to transfer the processing flow to another MFP thatcan perform the processing flow. More specifically, first, the MFP 101broadcasts a request of executability check on the processing flowdefinition file 1900 to the other devices on the LAN 100 (step S701),and waits for reception of an executable response from any MFP on theLAN 100 (step S702). In the present embodiment, since the MFP 103 iscompatible with the document combining function, it is assumed that theMFP 103 transmits the executable response of the processing flowdefinition file 1900 to the MFP 101.

Next, the MFP 101 displays MFPs that can perform the processing flow, ina list form (step S703), and waits for the user to determine a transferdestination of the processing flow (step S704). In the presentembodiment, it is assumed that only the MFP 103 is displayed as the MFPcapable of performing the processing flow, in the list in the step S703,and the user determines the MFP 103 as the transfer destination of theprocessing flow in the step S704.

Then, the MFP 101 divides the processing flow definition file 1900 togenerate a first cooperation processing flow definition file 2000,described hereinafter, and a second cooperation processing flowdefinition file 2100, described hereinafter (step S705). After that, theMFP 101 transfers the processing flow definition file 1900 and thesecond cooperation processing flow definition file 2100 to the MFP 103(step S706).

Next, the MFP 101 deletes the execution button associated with theprocessing flow definition file 1900 (step S707), and displays anexecution button associated with the first cooperation processing flowdefinition file 2000 (step S708). Finally, the MFP 101 updates thecontents of the processing flow management file 400 (step S709),followed by terminating the present process.

In the meanwhile, the MFP 103 executes the processing flow receptionprocess in FIG. 13. More specifically, when the MFP 103 receives therequest of the executability check on the processing flow definitionfile 1900 from the MFP 101 (step S1301), the MFP 103 analyses theprocessing flow (step S1302) and determines whether or not the MFP 103can perform the processing flow (step S1303). In the present embodiment,since the MFP 103 is capable of executing the processing flow definitionfile 1900, the MFP 103 transmits the executable response to the MFP 101(step S1304). After that, the MFP 103 waits for reception of theprocessing flow definition file 1900 and the second cooperationprocessing flow definition file 2100 from the MFP 101 (step S1305). Uponreception of the two processing flow definition files, the MFP 103registers the contents thereof in the processing flow management file(step S1306), followed by terminating the present process.

Similarly, the MFP 102 as well executes the processing flow receptionprocess shown in FIG. 13. More specifically, when the MFP 102 receivesthe request of the executability check on the processing flow definitionfile 1900 from the MFP 101 (step S1301), the MFP 102 analyses theprocessing flow (step S1302) and determines whether or not the MFP 102can perform the processing flow (step S1303). In the present embodiment,however, the MFP 102 is incompatible with the document combiningfunction and determines that it cannot execute the processing flowdefinition file 1900, so that the MFP 102 internally discards therequest of the executability check, and immediately terminates thepresent process.

As described heretofore, the processing flow for “scanning in adocument, combining a scanned-in document and a document stored in theHDD, and printing the combined document” is also transferred from ainitially registered device (MFP 101) incapable of executing theprocessing flow to another device (MFP 103) capable of executing theprocessing flow. Further, the processing flow is also registered in theMFP 101 as a cooperation processing flow. This enables the user to carryout the above-described desired processing flow without changing itscontents, not only by the MFP 103 but also by the MFP 101.

FIGS. 20A and 20B and FIGS. 21A and 21B show the first cooperationprocessing flow definition file 2000 and the second cooperationprocessing flow definition file 2100, respectively, which are generatedin the step S705 by dividing the processing flow definition file.

In the first cooperation processing flow definition file 2000 shown inFIG. 20A, a tag 2050 indicates that one processing flow is executed. Thetag 2050 is comprised of the following attributes:

In FIG. 20B, an attribute 2051 represents the management ID of theprocessing flow. An attribute 2052 represents the name of the processingflow. An attribute 2053 represents the serial ID of the processing flow.An attribute 2054 represents the serial ID of a cooperation processingflow as a cooperation destination.

The attributes 2053 and 2054 are set only for a cooperation processingflow executed by the MFP 101 in cooperation with another MFP. Uniquevalues in the network are set as respective serial IDs thereof. In thepresent embodiment, it is assumed that each serial ID is formed by atwelve-digit number composed of “lower eight digits of an MAC (MediaAccess Control) address of an MFP”+“a four-digit sequential numbermanaged by the MFP”. However, the serial ID is only required to be aunique value in the network, and is not necessarily required to beconfigured as mentioned above. The serial ID may be configured invarious forms including the number of digits.

In FIG. 20A, a tag 2001, in which the contents of the tag 1901 of theprocessing flow definition file 1900 are copied as they are, indicatesthat a scan task using the scanner section 270 is executed to input adocument. A tag 2002, in which the contents of the tag 1902 of theprocessing flow definition file 1900 are copied as they are, indicatesthat image data stored in the HDD 204 is handled as an input document.

A tag 2003, in which the contents of the tag 1903 of the processing flowdefinition file 1900 are copied as they are, specifies the image datastored in the HDD 204. A tag 2004 indicates that a send task is executedto transmit a document to a transmission destination. A tag 2005indicates an address that is set to the transmission destination byconfiguration of the send task. The IP address (192.168.0.103) of theMFP 103, which is the transmission destination of the cooperationprocessing flow, is set in the tag 2005. A tag 2006 indicates a documentto be transmitted to the MFP 103. A tag 2007 indicates the serial ID ofthe cooperation processing flow that the MFP 101 instructs the MFP 103to execute.

The description of the tags 2004 to 2007 indicates processing of“transmitting the data indicated by the tag 2006 to the destinationindicated by the tag 2005, and instructing the destination to executethe cooperation processing flow indicated by the tag 2007”. Similarly,in the second cooperation processing flow definition file 2100 shown inFIG. 21A, a tag 2150 indicates that one processing flow is executed. Thetag 2150 is comprised of the following attributes:

In FIG. 21B, an attribute 2151 represents the management ID of theprocessing flow. However, the second cooperation processing flowdefinition file 2100 is transferred to the MFP 103 later during theprocessing flow transfer process in FIG. 7 and has a desired managementID given thereto by the MFP 103, and hence here, no management ID isgiven to the second cooperation processing flow definition file 2100.

An attribute 2152 represents the name of the processing flow. Anattribute 2153 represents the serial ID of the processing flow. Anattribute 2154 represents the serial ID of a cooperation processing flowas a cooperation source. The attributes 2153 and 2154 are set only for acooperation processing flow executed by the MFP 101 in cooperation withanother MFP. Unique values in the network are set as respective serialIDs thereof. In the present embodiment, it is assumed that each serialID is formed by a twelve-digit number composed of “lower eight digits ofan MAC (Media Access Control) address of an MFP”+“a four-digitsequential number managed by the MFP”. However, the serial ID is onlyrequired to be a unique value in the network, and is not necessarilyrequired to be configured as mentioned above. The serial ID may beconfigured in various forms including the number of digits.

In FIG. 21A, a tag 2101 indicates that a reception task is executed toreceive a document. A tag 2102 specifies a received document. A tag2103, in which the contents of the tag 1904 of the processing flowdefinition file 1900 are copied as they are, indicates that a task forcombining documents is carried out to combine a plurality of documentsinto a single document. A tag 2104, in which the contents of the tag1905 of the processing flow definition file 1900 are copied as they are,specifies documents to be combined. A tag 2105, in which the contents ofthe tag 1906 of the processing flow definition file 1900 are copied asthey are, indicates that a printing task is executed to print thedocument.

As described hereinabove, the processing flow of “scanning in adocument, combining a scanned-in document and a document stored in theHDD, and printing the combined document” is defined in the processingflow definition file 1900. However, the MFP 101 is capable of executingthe processing flow only up to a portion concerning “specifying thescanned-in document and the document stored in the HDD”. Therefore, thefirst cooperation processing flow definition file 2000 formed by tasksexecutable by the MFP 101 defines a processing flow of “transmitting thescanned-in document and the document stored in the HDD to the MFP 103”,and the second cooperation processing flow definition file 2100 formedby tasks remaining to be executed defines the processing flow of“combining documents received from the MFP 101 and printing the combineddocument” in a manner continuous to the first cooperation processingflow definition file 2000.

FIG. 22 is a diagram showing an example of an operation screen of theMFP 101 for User B, which is displayed after the processing flowtransfer process in FIG. 7 has been executed by the MFP 101 to transferthe processing flow of “transmitting the scanned-in document and thedocument stored in the HDD to the MFP 103” to the MFP 103.

In FIG. 22, a button 607 is for executing the first cooperationprocessing flow definition file 2000. On the button 607, there aredisplayed words of “[COOPERATION FLOW] COOPERATION HOST: CCC” whichindicates that the button 607 is for executing a processing flow incooperation with the MFP 103. The other buttons 601, 604 and 605 are notchanged from those described above with reference to FIG. 6, anddetailed descriptions thereof are omitted.

FIG. 23 is a diagram showing an example of a processing flow managementfile 2300 that is managed by the MFP 103 after execution of theprocessing flow reception process in FIG. 13 by the MFP 103.

Referring to FIG. 23, a column 2301 stores management IDs of processingflows. A column 2302 stores the names of the processing flows. A column2303 stores information indicative of who has a right for accessing eachprocessing flow. A column 2304 stores tasks that constitute eachprocessing flow.

A column 2305 stores information indicative of whether or not theprocessing flow is a cooperation processing flow. If the processing flowis a cooperation processing flow, “Y” is stored in a box of the column2305 associated with the processing flow, whereas when the processingflow can be executed by the MFP by itself, “N” is stored in theassociated box of the column 1405.

When “Y” is stored in the column 2305, i.e. when the processing flow isa cooperation processing flow, a serial ID of the cooperation processingflow is stored in a box of a column 2306 associated with the processingflow. The serial ID is automatically given only to a cooperationprocessing flow by a MFP during generation of the cooperation processingflow, and a unique value in the network is given to the cooperationprocessing flow. Further, once a value is given to the cooperationprocessing flow during generation thereof, the value is not changedthereafter.

When “Y” is stored in the column 2305, i.e. when the processing flow isa cooperation processing flow, information indicative of the type ofcooperation of the cooperation processing flow is stored in a box of acolumn 2307 associated with the processing flow. When the MFP 103executes the cooperation processing flow earlier and an MFP other thanthe MFP 101 executes another predetermined cooperation processing flowlater, “Src” is stored in the associated box of the column 2307. On theother hand, when the MFP other than the MFP 101 executes the cooperationprocessing flow earlier, and the MFP 103 executes the same later, “Dst”is stored in the associated box of the column 2307.

When “Y” is stored in the column 2305, i.e. when the processing flow isa cooperation processing flow, information on an MFP as an cooperationdestination is stored in a box of a column 2308 associated with theprocessing flow. For example, the column 2308 stores the host name andthe IP address of the MFP as the cooperation destination, and the serialID of the cooperation processing flow to be executed by the cooperationdestination. In the illustrated example, a processing flow registeredwith an ID of 1 is associated with the processing flow definition file1900, and a processing flow registered with an ID of 2 is associatedwith the second cooperation processing flow definition file 2100. Sincethe processing flow definition file 1900 is associated with a processingflow executable by the MFP 103 by itself, “N” is set in the associatedbox of the column 2305.

On the other hand, the second cooperation processing flow definitionfile 2100 is associated with a cooperation processing flow whichcooperates with the MFP 101 and is executed in a manner associated withthe first cooperation processing flow definition file 2000 for the MFP101. Therefore, “Y” is stored in the associated box of the column 2305.Further, since the second cooperation processing flow definition file2100 is executed in the sequence of MFP 101→, MFP 102, “Dst” is storedin the associated box of the column 2307. Further, the host name (AAA)and the IP address (192.168.0.101) of the MFP 101 as a cooperationpartner are stored in the associated box of the column 2308.

FIG. 24 is a diagram showing an example of an operation screen which isdisplayed on the operating section 212 of the MFP 103 when User B haslogged in to the MFP 103.

In FIG. 24, a button 2401 is for starting the processing flowapplication 300 to display a screen. In the present embodiment, it isassumed that no button for starting another application is displayed.

Buttons 2402 and 2403 are for calling and executing respectiveprocessing flows assigned thereto. A button 2404 is for performingtransition to a shared screen that is displayed irrespective of thelogin user. A button (not shown) displayed when the button 2404 isdepressed is for a processing flow which has “shared” set as adisclosure range in the column 2303 of the processing flow managementfile 2300. A button 2405 is for displaying a screen for generating andediting a processing flow.

Here, the button 2402 is for executing the processing flow definitionfile 1900, and the button 2403 is for executing the second cooperationprocessing flow definition file 2100. Whether or not each button isdisplayed is determined after the MFP 103 has performed the buttondisplay-determining process in FIG. 16. Since the processing flowdefinition file 1900 is not for a cooperation processing flow, thebutton 2402 associated therewith is displayed on the operation screen.Further, the second cooperation processing flow definition file 2100 isfor a cooperation processing flow of which the type of cooperation is“Dst” and further the final task of which is “Print”, and hence thebutton 2403 associated therewith is displayed on the operation screen.

If User B logs in to the MFP 103 to depress the button 2402, the MFP 103executes the processing flow-executing process in FIG. 17 to execute theprocessing flow defined by the processing flow definition file 1900associated with the button 2402.

If User B logs in to the MFP 101 to depress the button 607, the MFP 101executes the processing flow-executing process in FIG. 17 to execute acooperation processing flow defined by the first cooperation processingflow definition file 2000 associated with the button 607. Then, ascanned-in document and a document stored in the HDD are transmittedfrom the MFP 101 to the MFP 103, and together therewith, an instructionfor executing a processing flow defined by the second cooperationprocessing flow definition file 2100 is transmitted. Consequently, thecooperation processing flow-executing process in FIG. 18 is executed bythe MFP 103.

When the MFP 103 receives the instruction for executing the cooperationprocessing flow defined by the second cooperation processing flowdefinition file 2100 (step S1801), the MFP 103 determines whether or notthe instructed cooperation processing flow is a flow a button for whichis to be displayed (steps S1802 and S1803). In the present case, it isdetermined that a button for the cooperation processing flow is to bedisplayed, the MFP 103 does not execute the cooperation processing flowat the time, but waits for User B to log in (step S1804). Uponoccurrence of the login of User B, the MFP 103 displays the operationscreen shown in FIG. 24 (step S1805), and waits for the button 2403associated with the second cooperation processing flow definition file2100 to be depressed (step S1806). When the button 2403 is depressed, inresponse to the depression of the button 2403, the MFP 103 executes thecooperation processing flow defined by the second cooperation processingflow definition file 2100 associated with the button 2403.

As described heretofore, according to the present embodiment, when thereis a processing flow that cannot be executed by an MFP by itself, theMFP searches for another MFP that can execute the processing flow, andtransfers the processing flow to an MFP determined as a transferdestination. Thus, a button for executing the processing flow isdisplayed on the MFP as the transfer destination, thereby making itpossible to execute the processing flow as desired by a user withoutchanging the contents of the processing flow.

Further, if the processing flow is divided to newly generate acooperation processing flow, and a button for executing the cooperationprocessing flow is displayed, it is also possible to execute theprocessing flow not only by the MFP as the transfer destination but alsoby the MFP as the transfer source.

Furthermore, when the final task of the processing flow is printing, abutton for executing the cooperation processing flow is also displayedon the MFP as the transfer destination so as to prevent the cooperationprocessing flow from being executed until the execution button isdepressed. This makes it possible to prevent an undesired event thatuser's depression of the button for executing the cooperation processingflow on the MFP as the transfer source causes the printing process to beimmediately executed by another MFP physically away from the MFP as thetransfer source, thereby causing a confidential document of the user orthe like to be left in a discharging tray. On the other hand, when thefinal task of the processing flow is not printing (transmission of adocument to another MFP, storage of a document in the HDD, or the like),no button for executing the cooperation processing flow is displayed onthe MFP as the transfer destination. In this case, at a time point whenthe user depresses the button for executing the cooperation processingflow on the MFP as the transfer source, the MFP as the cooperationdestination immediately executes a cooperation processing flowassociated with the button. This makes it unnecessary for the user tomove to the MFP as the transfer destination to perform operations e.g.for logging in to the MFP, depressing a button, and so forth, whereby itis possible to perform a desired processing flow only by a simpleoperation.

Next, a description will be given of an image forming apparatusaccording to a second embodiment of the present invention.

In the above-described first embodiment, as shown in FIG. 24, the button2403 for executing a processing flow defined by the second cooperationprocessing flow definition file 2100 is displayed whenever User B haslogged in. Actually, however, the button 2403 is activated only whenUser B depresses the FIG. 22 button 607 in advance on the MFP 101.Further, since the contents to be displayed by the button 2402 aresimilar to the contents to be displayed by the button 2403, it isdifficult for User B to determine which button should be depressed.

Therefore, except when User B depresses the button 607 in FIG. 22 inadvance on the MFP 101, the whole of the button 2403 may be grayed outto inhibit the button 2403 from being depressed by User B.

FIG. 25 is a diagram showing an example of an operation screen which isdisplayed on the operating section 212 by the MFP 103 according to thesecond embodiment of the present invention when User B has logged in tothe MFP 103. Here, let it be assumed that User B has not depressed thebutton 607 in FIG. 22 in advance on the MFP 101, that is, no instructionfor executing the second cooperation processing flow definition file2100 is issued from the MFP 101 to the MFP 103. Therefore, a button 2503for executing the second cooperation processing flow definition file2100 is grayed out to inhibit depression thereof. On the other hand, thebutton 2502 for executing a processing flow defined by the processingflow definition file 1900 is displayed to permit depression thereof.

FIG. 26 is a diagram showing an example of an operation screen which theMFP 103 according to the second embodiment of the present inventiondisplays when User B has logged in. Here, however, differently from FIG.25, it is assumed that User B has depressed the button 607 shown in FIG.22 in advance on the MFP 101, that is, the MFP 103 has been instructedto execute the second cooperation processing flow definition file 2100by the MFP 101.

Oppositely to FIG. 25, in FIG. 26, a button 2603 for executing theprocessing flow defined by the second cooperation processing flowdefinition file 2100 is in a state ready for depression. On the otherhand, a button 2602 for executing the processing flow defined by theprocessing flow definition file 1900 is grayed out to inhibit depressionthereof.

This enables the user to depress the button 2603 without erroneouslydepressing the button 2602 to thereby start a desired cooperationprocessing flow in a state waiting for the button 2603 to be depressed.

As described hereinabove, according to the second embodiment of thepresent invention, the MFP grays out a button as required to inhibitdepression of the button by the user. This makes it possible to preventthe user from erroneously depressing a button associated with anunexecutable processing flow or a button different from a buttonintended by the user, or from being confused in determining which buttonshould be depressed.

The purpose of the above-described processing is performed only with thegoal of preventing the user from erroneously depressing a buttonassociated with unexecutable processing flow or a button different froma button intended by the user, or from being confused in determiningwhich button should be depressed, and hence a method for achieving thegoal is not necessarily limited to the above-described display methodincluding graying out of buttons. Every method for realizing theabove-described goal is included in the scope of the present invention.For example, in FIG. 25, the button 2503 may be configured as anon-display button from the beginning without being grayed out.Similarly, in FIG. 26, the button 2602 may be configured as anon-display button from the beginning without being grayed out. Further,the button 2603 may be displayed in a manner different from the otherbuttons only when User B depresses the FIG. 22 button 607 in advance onthe MFP 101. For example, only the button 2603 may be changed in thecolor of display, blinked, or increased in size. Alternatively, amessage for prompting the user to depress the button 2603 may be simplydisplayed in a vacant area of the operation screen. Every method otherthan the above for making the button 2603 more conspicuous than theother buttons is included in the scope of the present invention.

Next, an image forming apparatus according to a third embodiment of thepresent invention will be described.

Although in the above-described first embodiment, as shown in theflowchart of FIG. 17, the MFP terminates the process immediately aftertransmitting the instruction for executing the second cooperationprocessing flow (step S1707), the MFP may await notification of theresults of execution of the second cooperation processing flow fromanother MFP as a cooperation destination.

FIG. 27 is a flowchart of a processing flow-executing process executedby the MFP according to the third embodiment of the present invention.

In FIG. 27, steps S2701 to S2708 indicate processing steps of theprocessing flow-executing process executed by an MFP (MFP 101 in thepresent example) which executes a processing flow upon reception of aninstruction for executing the processing flow from the user. A controlprogram implementing the processing flow-executing process is stored inthe ROM 203 of the MFP, and is executed by the CPU 201. Further, thesteps S2701 to S2707 are identical to the respective steps S1701 toS1707 in FIG. 17, and detailed descriptions thereof are omitted.

In the step S2707, the MFP transmits an instruction for executing thesecond cooperation processing flow, and then waits for an MFP as acooperation destination (MFP 102 or 103 in the present example) tonotify the MFP of the results of execution of the second cooperationprocessing flow (step S2708). This step is an example of processingexecuted by a waiting unit in the present invention. Upon reception ofthe results of the execution of the second cooperation processing flow,the MFP terminated the present process.

FIG. 28 is a flowchart of a process carried out in the third embodimentof the present invention by the MFP as the cooperation destination whenthe MFP receives the instruction for executing the predeterminedcooperation processing flow from the MFP as the cooperation source.

In FIG. 28, steps S2801 to S2808 indicate processing steps of theprocess executed by the MFP as the cooperation destination when theprocessing flow-executing process in FIG. 27 is executed by the MFP asthe cooperation source and the instruction for executing the cooperationprocessing flow is transmitted from the cooperation source. A controlprogram implementing the process is stored in the ROM 203 within the MFPas the cooperation destination, and is executed by the CPU 201. Further,the steps S2801 to S2807 are identical to the respective steps S1801 toS1807 shown in FIG. 18, and detailed descriptions thereof are omitted.

In the step S2807, the MFP as the cooperation destination carries outthe instructed cooperation processing flow, and then notifies the MFP asthe cooperation source of the results of execution of the cooperationprocessing flow (step S2808). This step is an example of processingexecuted by a notification unit in the present invention.

As described hereinabove, according to the third embodiment, when an MFPas a cooperation source transmits an instruction for executing acooperation processing flow, the MFP awaits notification of the resultsof execution of the cooperation processing flow from an MFP as acooperation destination. This makes it possible to store a more detailedexecution history of the processing flow, including e.g. the results ofexecution of the cooperation processing flow executed by the cooperationdestination. The user can recognize the detailed execution historysimply with reference to the execution history stored in one of the MFPas the cooperation source and the MFP as the cooperation destination,which increases user friendliness.

Aspects of the present invention can also be realized by a computer of asystem or apparatus (or devices such as a CPU or MPU) that reads out andexecutes a program recorded on a memory device to perform the functionsof the above-described embodiment(s), and by a method, the steps ofwhich are performed by a computer of a system or apparatus by, forexample, reading out and executing a program recorded on a memory deviceto perform the functions of the above-described embodiment(s). For thispurpose, the program is provided to the computer for example via anetwork or from a recording medium of various types serving as thememory device (e.g., computer-readable medium).

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all modifications, equivalent structures and functions.

This application claims priority from Japanese Patent Application No.2008-283307 filed Nov. 4, 2008, which is hereby incorporated byreference herein in its entirety.

1. An image processing apparatus comprising: a registration unit thatregisters a processing flow set by combining a plurality of processesincluding an image inputting process and an image outputting process; anexecution unit that executes the plurality of processes based on theregistered processing flow; a generation unit configured to generatefrom the processing flow a first cooperation processing flow includingprocesses that can be executed by the image processing apparatus, and asecond cooperation processing flow including at least one process thatcannot be executed by the image processing apparatus; a transfer unitconfigured to transfer the second cooperation processing flow to anexternal image processing apparatus which is capable to execute thesecond cooperation processing flow; wherein the execution unit executesthe first cooperation processing flow and the external image processingapparatus executes the second cooperation processing flow, to therebyrealize the registered processing flow.
 2. The image processingapparatus according to claim 1, further comprising a waiting unitconfigured to wait for a notification of results of execution of thesecond cooperation processing flow from the external image processingapparatus.
 3. The image processing apparatus according to claim 1,wherein the processing flow registered by the registration unit includesa process of giving a user certificate to a document.
 4. The imageprocessing apparatus according to claim 3, wherein the generating unitgenerates, if the image processing apparatus has no function of givingthe user certificate to the document, the second cooperation processingflow including the process of giving the user certificate to thedocument.
 5. The image processing apparatus according to claim 4,wherein the generating unit further generates the first cooperationprocessing flow including a process of transmitting the document to theexternal apparatus.
 6. The image processing apparatus according to claim1, wherein the processing flow registered by the registration unitincludes a process of combining a plurality of documents.
 7. The imageprocessing apparatus according to claim 6, wherein the generation unitgenerates, if the image processing apparatus has no function ofcombining the plurality of documents, the second cooperation processingflow including a function of combining the plurality of documents. 8.The image processing apparatus according to claim 7, wherein thegenerating unit further generates the first cooperation processing flowincluding a process of transmitting the external apparatus to thedocument.
 9. The image processing apparatus according to claim 1,wherein the execution unit does not execute the processing flow, ifthere is no external image processing apparatus capable of executing atleast one process, included in the processing flow registered by theregistration unit, that cannot be executed by the image processingapparatus.
 10. The image processing apparatus according to claim 1,wherein the registration unit further registers the first cooperationprocessing flow.
 11. The image processing apparatus according to claim9, wherein the registration unit registers the first cooperationprocessing flow such that the first cooperation processing flow can bediscriminated as the processing flow cooperating with the external imageprocessing apparatus.
 12. The image processing apparatus according toclaim 1, further comprising a display unit configured to display anobject corresponding to the processing flow registered by theregistration unit.
 13. A method of controlling an image processingapparatus, the method comprising: registering a processing flow set bycombining a plurality of processes including an image inputting processand an image outputting process; generating from the processing flow afirst cooperation processing flow including processes that can beexecuted by the image processing apparatus, and a second cooperationprocessing flow including at least one process that cannot be executedby the image processing apparatus; transferring the second cooperationprocessing flow to an external image processing apparatus which iscapable to execute the second cooperation processing flow; and executingthe first cooperation processing flow, wherein the first cooperationprocessing flow is executed by the image processing apparatus and thesecond cooperation processing flow is executed by the external imageprocessing apparatus executes, to thereby realize the registeredprocessing flow.
 14. A non-transitory computer-readable storage mediumstoring a program for causing a computer to execute a method ofcontrolling an image processing apparatus, the method comprising:registering a processing flow set by combining a plurality of processesincluding an image inputting process and an image outputting process;generating from the processing flow a first cooperation processing flowincluding processes that can be executed by the image processingapparatus, and a second cooperation processing flow including at leastone process that cannot be executed by the image processing apparatus;transferring the second cooperation processing flow to an external imageprocessing apparatus which is capable to execute the second cooperationprocessing flow; and executing the first cooperation processing flow,wherein the first cooperation processing flow is executed by the imageprocessing apparatus and the second cooperation processing flow isexecuted by the external image processing apparatus executes, to therebyrealize the registered processing flow.